package pe.bf.extranet.ejb;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.sql.DataSource;

import pe.bf.domain.bean.Banco;
import pe.bf.domain.bean.Departamento;
import pe.bf.domain.bean.Distrito;
import pe.bf.domain.bean.Empresa;
import pe.bf.domain.bean.Moneda;
import pe.bf.domain.bean.Perfil;
import pe.bf.domain.bean.Provincia;
import pe.bf.domain.bean.TipoCuenta;
import pe.bf.domain.bean.TipoDocumento;
import pe.bf.domain.constantes.Constantes;
import pe.bf.domain.exceptions.DomainException;
import pe.bf.extranet.dao.MaestroDAO;
import pe.bf.extranet.dao.impl.MaestroDAOImpl;

/**
 * Session Bean implementation class PerfilEJB
 */
@WebService
@Stateless
@LocalBean
public class MaestroEJB {
	
	 
	@Resource(name=Constantes.JNDI_DATASOURCE)
	public DataSource dataSource;
	
	public MaestroDAO maestroDAO;
 
	
	@PostConstruct
	public void init() { 
		maestroDAO = new MaestroDAOImpl(dataSource);
	}

	@WebMethod
	public List<TipoDocumento> findTipoDocumentos() throws DomainException {
		return maestroDAO.findTipoDocumentos();
	}

	@WebMethod
	public List<Distrito> findDistritos() throws DomainException {
		return maestroDAO.findDistritos();
	}

	@WebMethod
	public List<Empresa> findEmpresas() throws DomainException {
		return maestroDAO.findEmpresas();
	}

	@WebMethod
	public List<Moneda> findMonedas() throws DomainException {
		return maestroDAO.findMonedas();
	}

	@WebMethod
	public List<TipoCuenta> findTipoCuentas() throws DomainException {
		return maestroDAO.findTipoCuentas();
	}
  
	@WebMethod
	public List<Banco> findBancos() throws DomainException {
		return maestroDAO.findBancos();
	}

	
	  
		@WebMethod
		public List<Perfil> findPerfiles() throws DomainException {
			return maestroDAO.findPerfiles();
		}

	
	  
		@WebMethod
		public List<Departamento> findDepartamento() throws DomainException {
			return maestroDAO.findDepartamento();
		}
		
		  
		@WebMethod
		public List<Provincia> findProvincia(String codigo) throws DomainException {
			return maestroDAO.findProvincia(codigo);
		}
		
		  
		@WebMethod
		public List<Distrito> findDistrito(String codigo) throws DomainException {
			return maestroDAO.findDistrito(codigo) ;
		}
	
	
}
